package gestion;

import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JOptionPane;


import dao.DaoUsuario;
import dominio.Usuario;
import excepciones.DAOExcepcion;


public class Usuarios {
	private ArrayList<Usuario> listaUsuarios = new ArrayList<Usuario>();
	private DaoUsuario daoUsuario = new DaoUsuario();
	
	public boolean comprobarNuevoUsuarioEsCorrecto (Usuario usuario) {
		if (usuario.getContrasena().length() != 0
				&& usuario.getTipo() != -1
				&& usuario.getEmail().length() != 0
				&& usuario.getSocio() != null)
			return true;
		else {
			JOptionPane error = new JOptionPane();
			error.showMessageDialog(null, "Faltan campos por rellenar", "Error", JOptionPane.ERROR_MESSAGE);
			return false;
		}
	}
	
	public boolean comprobarUsuario (String email, String contrasena) {
		try {
			listaUsuarios = new DaoUsuario().ListarUsuarioPorEmail(email);
			Usuario user = new Usuario();
			Iterator it = listaUsuarios.iterator();
			while (it.hasNext()) {
				user = (Usuario) it.next();
				if(user.getContrasena().equals(contrasena)) {
					return true;
				}
			}
			return false;
		} catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

	public boolean anadirUsuario(Usuario usuario) throws DAOExcepcion {
		// TODO Auto-generated method stub
		daoUsuario.anadirUsuario(usuario);
		return true;
	}

	public boolean comprobarUsuarioPorEmail(String email) throws DAOExcepcion {
		listaUsuarios = daoUsuario.recuperarUsuarioPorEmail(email);
		if (listaUsuarios.size() != 0) {
			return true;
		}		
		return false;
	}
	
	public boolean comprobarUsuarioPorEsncard(String Esncard) throws DAOExcepcion {
		listaUsuarios = daoUsuario.recuperarUsuarioPorEsncard(Esncard);
		if (listaUsuarios.size() != 0) {
			return true;
		}		
		return false;
	}
	
	// recuperar un usuario desde daoUsuario  
	public Usuario recuperarUsuarioPorEmail(String mail) throws DAOExcepcion {
		listaUsuarios = daoUsuario.recuperarUsuarioPorEmail(mail);
		Usuario usuario = new Usuario();
		Iterator it = listaUsuarios.iterator();
		while (it.hasNext()) {
			usuario = (Usuario) it.next();
		}		
		return usuario;
	}	
	
	public Usuario recuperarUsuarioPorEsncard(String Esncard) throws DAOExcepcion {
		listaUsuarios = daoUsuario.recuperarUsuarioPorEmail(Esncard);
		Usuario usuario = new Usuario();
		Iterator it = listaUsuarios.iterator();
		while (it.hasNext()) {
			usuario = (Usuario) it.next();
		}		
		return usuario;
	}	
	
	public ArrayList recuperarUsuarios() throws DAOExcepcion {
		listaUsuarios = daoUsuario.ListarUsuarios();
		return listaUsuarios;
	}	

}
